package com.wjw.java.collection.generic;

/**
 * 自定义泛接口：
 * interface 接口名<K,V...>{
 *
 * }
 *
 * 细节
 * 1.接口中的静态成员,也不能使用泛型(同泛型类)
 * 2.泛型接口的类型,在继承接口或实现接口时确定
 * 3.没有指定类型时,默认是Object类型
 */
public class Custom_Generic_Interface {
    public static void main(String[] args) {

    }
}

interface IUsb<K,V>{

    V getV(K v);

    void show1(K k,V v);

    //jdk1.8中,可以在默认方法中使用泛型
    default V getV2(K k){
        return null;
    }
}

//在继承接口的时候,确定泛型的类型
interface IA extends IUsb<String,Object>{

}

//当实现类实现了泛型接口,重写方法中的泛型也随之确定了
class AA implements IA{

    @Override
    public Object getV(String v) {
        return null;
    }

    @Override
    public void show1(String s, Object o) {

    }
}
//在实现类中确定泛型的类型
class BB implements IUsb<String,String>{

    @Override
    public String getV(String v) {
        return null;
    }

    @Override
    public void show1(String s, String s2) {

    }
}